#pragma once

#ifdef __cplusplus
extern "C"
{
#endif

#ifdef WIN32
#       pragma warning(disable:4091) 
#   if defined DLL_EXPORT
#       define WMDF_API __declspec(dllexport)
#   else
#       define WMDF_API __declspec(dllimport)
#   endif
#else
#   if defined __SUNPRO_C  || defined __SUNPRO_CC
#       define WMDF_API __global
#   elif (defined __GNUC__ && __GNUC__ >= 4) || defined __INTEL_COMPILER
#       define WMDF_API __attribute__ ((visibility("default")))
#   else
#       define WMDF_API
#   endif
#endif

  ////////////////////////////////////////////////////////////////
  //  Platform independent data types                           //
  ////////////////////////////////////////////////////////////////

#if (defined _MSC_VER &&_MSC_VER<=1500)
#ifndef int8_t
  typedef __int8 int8_t;
#endif
#ifndef int16_t
  typedef __int16 int16_t;
#endif
#ifndef int32_t
  typedef __int32 int32_t;
#endif
#ifndef int64_t
  typedef __int64 int64_t;
#endif
#ifndef uint8_t
  typedef unsigned __int8 uint8_t;
#endif
#ifndef uint16_t
  typedef unsigned __int16 uint16_t;
#endif
#ifndef uint32_t
  typedef unsigned __int32 uint32_t;
#endif
#ifndef uint64_t
  typedef unsigned __int64 uint64_t;
#endif
#else
#include <stdint.h>
#endif

#ifdef __cplusplus
}
#endif
